home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Programming / ARexxGuide / OS2.x_Version / ARx_GlossaryPort.rexx < prev    next >
OS/2 REXX Batch file  |  1994-04-10  |  23KB  |  563 lines

  1. /* ARx_GlossaryPort.rexx v1.1a  (02 Apr 1994)                              **
  2. ** Because the setup time to read all the compounds is rather slow, this  **
  3. ** reads them all just the first time that ARx_Glossary.rexx is called.   **
  4. ** It then sets up a port to present requesters on later calls.           **
  5. **     To shut down the port: "address 'ARX_REQPORT' 'QUIT'"               */
  6.  
  7. arg LkUp AGPort .
  8. if open(6HereWin, 'raw:10/50/360/48/Arx_GlossaryPort.rexx/NOCLOSE/SCREEN *') then do
  9.    call writech(6HereWin,'9b302070'x'Setting up glossary port for ARexxGuide.'||'0a'x'Please wait...')
  10. end
  11.  
  12. call addlib('rexxsupport.library',1,-30,0)
  13.     /* If it's added as a function host, this lib can cause severe probs   */
  14. call remlib('amigaguide.library')
  15.     /* Want this one added at a high priority                              */
  16. call remlib('rexxreqtools.library')
  17. call addlib('rexxreqtools.library',32,-30,0)
  18.  
  19. if find(getenv('arexxguide/Setup'), 'REQPORT') = 0 then
  20.     if 'ARx_Setup.rexx'('REQPORT') ~= 0 then call BadSetup
  21.  
  22. PortName = 'ARX_REQPORT'
  23.     /* It's possible to get here twice when clicking too quickly */
  24. if show('P', 'ARX_REQPORT') then exit 10
  25. call SetGlossaryVars
  26.  
  27. call close 6HereWin
  28.  
  29.     /* Show requester the first time this is called */
  30. if glossary.LkUp > '' then call ShowReq(LkUp)
  31. call setclip('ARX_SHOWREQ', 0)
  32.  
  33. /* This will hang around to put up subsequent requesters                 */
  34.  
  35. OPort = openport(PortName)
  36.    /* Loop until a Cmd -- QUIT --  changes the value of [Status] */
  37. do until Status = 'CLOSE'
  38.         /* Wierdness: waitpkt() won't wait if setclip() is within the loop. Odd.   */
  39.    call waitpkt(PortName)
  40.    Packet = getpkt(PortName)
  41.       /* Make sure we have a real message in [Packet] */
  42.    if Packet ~= null() then do
  43.       Cmd = getarg(Packet)
  44.         select
  45.             when abbrev(Cmd, 'DISPLAY') then do
  46.                 if words(Cmd) >= 3 then AGport = word(Cmd, 3)
  47.                    /* Was AG closed when we weren't looking? */
  48.                if ~show('P', AGport) then do
  49.                     call rtezRequest('The port' AGport 'is no longer available',,'ARexxGuide')
  50.                    Status = 'CLOSE'
  51.                end
  52.                else
  53.                     call showReq word(Cmd, 2)
  54.             end
  55.             when abbrev('QUIT', upper(Cmd)) then
  56.                 Status = 'CLOSE'
  57.             otherwise
  58.         end
  59.       call reply(Packet, 0)
  60.    end
  61. end
  62. call closeport OPort
  63.  
  64. call setclip('ARX_SHOWREQ')
  65. address command 'SETENV ARexxGuide/RqVer 1'
  66. exit 0
  67.  
  68. ShowReq:
  69.     arg LkUp
  70.     if glossary.LkUp > '' then do
  71.             /* Show the requester                                             */
  72.         resp = rtezrequest(glossary.LkUp,glossary.LkUp.Buttons,'Glossary:' LkUp,tags)
  73.             /* Is there a command associated with this response?              */
  74.         if glossary.LkUp.resp > '' then do
  75.                 /* Issue the command */
  76.             address value AGport
  77.             ''glossary.LkUp.resp
  78.             address
  79.         end
  80.     end
  81.     return resp
  82.  
  83. GetEnv: procedure
  84.         /* Use rexxarplib or RexxDosSupport if available, but this script**
  85.         ** does not add them to the list                                 */
  86.    if show('L', 'RexxDosSupport.library') then
  87.        return GetVar(arg(1))
  88.    else if show('L', 'rexxarplib.library') then
  89.       return 'GetEnv'(arg(1))
  90.  
  91.       /*  OPEN()  will fail if variable is not defined. Null will be    **
  92.       ** returned in that case                                          */
  93.    else if open(6Env, 'env:'arg(1), 'R') then do
  94.       EnvVar = readln(6Env)
  95.       call close 6Env
  96.    end
  97.    else EnvVar = ''
  98.    return EnvVar
  99.  
  100. syntax:
  101.    if rc = 14 then do
  102.        ErrMsg = 'Library not found for a function in this line SIGL:\strip(sourceline(SIGL),,'09'x)'
  103.        if pos('rtez', sourceline(SIGL) then
  104.            ErrMsg = ErrMsg'\Make sure version 37.50 or higher of\rexxreqtools.library is in your libs:\directory.'
  105.       call PutErrMsg(SIGL, ErrMsg)
  106.       exit 10
  107.    end
  108.     else do
  109.         call PutErrMsg(SIGL, '+++ Error' rc 'in line' SIGL':' errortext(rc))
  110.         exit 10
  111.     end
  112.  
  113. BadSetup:
  114.     call PutErrMsg(SIGL, 'A problem occurred in the setup script, but\we''ll attempt to continue...')
  115.  
  116. PutErrMsg:
  117.    call trace b
  118.    ErrMsg ='Sorry an enexpected error has occurred in line' arg(1)'.\\'arg(2)
  119.  
  120.    signal off syntax
  121.    signal off halt
  122.    signal off break_c
  123.    WinHi = 59 + CountChar('\', ErrMsg) * 11
  124.    if open(6ErrWin, 'raw:0/0/640/'WinHi'/Arx_GlossaryPort.rexx error/SCREEN *') then do
  125.       call writeln(6ErrWin, translate(ErrMsg,'0a'x, '\'))
  126.       call writech(6ErrWin, '0a'x'        -- Press any key -- ')
  127.       call readch(6ErrWin)
  128.    end
  129.    call close 6ErrWin
  130.     return 0
  131.  
  132. CountChar:
  133.    return length(arg(2)) - length(compress(arg(2), arg(1)))
  134.  
  135. SetGlossaryVars:
  136.     /* call trace off */
  137. NL = '0a'x
  138. if find(getenv('ARexxGuide/Setup'), 'REQPORT') = 0 then
  139.     call 'ARx_Setup.rexx'('REQPORT')
  140. tags = ''
  141. if getenv('ARexxGuide/ReqFont') > '' then
  142.     tags  = 'rt_font='getenv('ARexxGuide/ReqFont')
  143. if getenv('ARexxGuide/PubScr') > '' then
  144.     tags  = tags 'rt_pubscrname='getenv('ARexxGuide/PubScr')
  145.         /* [AGport] won't be expanded until the 'interpret' that shows the node */
  146. glossary. = ''
  147.  
  148. glossary.Address_string =,
  149. 'A four-character (4-byte) string that represents a'NL ||,
  150. 'machine address. The character string will be'NL ||,
  151. 'meaningless in itself, but can be translated to'NL ||,
  152. 'meaningful form with the c2d() or c2x() functions.'
  153. glossary.Address_string.Buttons = '_Ok|Node: c2_D()|Node: c2_X()|Node: _Address functions|_Cancel'
  154. glossary.Address_string.2 = 'link ARx_Func2.ag/c2d()'
  155. glossary.Address_string.3 = 'link ARx_Func2.ag/c2x()'
  156. glossary.Address_string.4 = 'link ARx_Func4.ag/memlist'
  157.  
  158. glossary.Assignment =,
  159. 'A process that gives (assigns) a value of some kind'NL ||,
  160. 'to a variable. An assignment clause takes this form:'NL || NL ||,
  161. '               <symbol> = <expression>;'NL || NL ||,
  162. 'The <symbol> -- a variable --  becomes a placeholder'NL ||,
  163. 'for the value of <expression>.'NL || NL ||,
  164. 'There are also other, less common, ways that an'NL ||,
  165. 'assignment can be made, notably the PARSE and'NL ||,
  166. 'DO instructions.'
  167. glossary.Assignment.Buttons = '_Ok|Node: _Assignment|_Cancel'
  168. glossary.Assignment.2 = 'link ARx_Elements3.ag/ASSIGNMENT'
  169.  
  170. glossary.Boolean =,
  171. 'Either true or false, which -- in ARexx -- is'NL ||,
  172. 'considered to be 1 for true and 0 for false. Named'NL ||,
  173. 'after the mathematician George Boole.'
  174. glossary.Boolean.Buttons = '_Ok|Node: con_Ditionals|_Cancel'
  175. glossary.Boolean.2 = 'link ARx_Elements3.ag/Conditional'
  176.  
  177.  
  178. glossary.Clause =,
  179. 'A collection of tokens forming a program statement'NL ||,
  180. 'that can be executed by ARexx, usually contained on a'NL ||,
  181. 'single line. A clause is the smallest language unit'NL ||,
  182. 'that can be executed as a statement.'
  183. glossary.Clause.Buttons = '_Ok|Node: _Clause|_Cancel'
  184. glossary.Clause.2 = 'link ARx_Elements3.ag/Clause'
  185.  
  186. glossary.Command =,
  187. 'A program statement (a clause) that is sent to an'NL ||,
  188. 'external environment (the host) to be run. The host'NL ||,
  189. 'determines the syntax and other requirements for a'NL ||,
  190. 'command. Although it is often overlooked, commands'NL ||,
  191. 'should be enclosed in quotation marks.'
  192. glossary.Command.Buttons = '_Ok|Node: co_Mmand|Node: Command _String|Node: _Host|_Cancel'
  193. glossary.Command.2 = 'link ARx_Elements3.ag/Command'
  194. glossary.Command.3 = 'link ARx_Elements3.ag/CmdString'
  195. glossary.Command.4 = 'link ARx_Elements3.ag/Host'
  196.  
  197. glossary.CON =,
  198. 'Or: Console Window. A logical_device that opens a'NL ||,
  199. 'text window on the Workbench or other public screen.'NL ||,
  200. 'This device can be used as the <filename> with the'NL ||,
  201. 'file I/O functions to direct output to a window'NL ||,
  202. 'opened by the script.'
  203. glossary.CON.Buttons = '_Ok|Node: _Special I/O|_Cancel'
  204. glossary.CON.2 = 'link ARx_Func3.ag/otherio'
  205.  
  206. glossary.Concatenate =,
  207. 'To combine one part with another to form a new whole.'NL ||,
  208. 'When two strings are concatenated, they are joined'NL ||,
  209. 'together to form a new string.'NL || NL ||,
  210. 'A space between two expressions acts as a concaten-'NL ||,
  211. 'ation operator in ARexx as do the characters `||''.'
  212. glossary.Concatenate.Buttons = '_Ok|Node: Concatenation _Operators|Node: _Strings|_Cancel'
  213. glossary.Concatenate.2 = 'link ARx_Operator.ag/CONCATENATION'
  214. glossary.Concatenate.3 = 'link ARx_Elements2.ag/STRINGEXPR'
  215.  
  216.  
  217. glossary.Constant =,
  218. 'In ARexx, a symbol that cannot be used as the target'NL ||,
  219. 'of a variable assignment. The most common constants'NL ||,
  220. 'in ARexx are numbers.'
  221. glossary.Constant.Buttons = '_Ok|Node: cons_Tant|Node: _Number|_Cancel'
  222. glossary.Constant.2 = 'link ARx_Elements.ag/Constant'
  223. glossary.Constant.3 = 'link ARx_Elements2.ag/Number'
  224.  
  225. glossary.Continuation_Token =,
  226. 'When a comma `,'' is used as the last significant'NL ||,
  227. 'token in a line, it indicates that the current line'NL ||,
  228. 'should be combined with the next line to form a'NL ||,
  229. 'single clause. Comments and other null values may be'NL ||,
  230. 'included after the continuation token.'
  231. glossary.Continuation_Token.Buttons = '_Ok|Node: Co_Mma|Node: _Token|_Cancel'
  232. glossary.Continuation_Token.2 = 'link ARx_Elements.ag/Comma'
  233. glossary.Continuation_Token.3 = 'link ARx_Elements.ag/Token'
  234.  
  235. glossary.Control_Structure =,
  236. 'A programming construct that allows a series of'NL ||,
  237. 'statements to be executed as part of a block. The'NL ||,
  238. 'instructions DO, SELECT, and IF create control'NL ||,
  239. 'structures in ARexx.'
  240. glossary.Control_Structure.Buttons = '_Ok|Node: _DO|Node: _SELECT|Node: _IF|_Cancel'
  241. glossary.Control_Structure.2 = 'link ARx_Instr.ag/DO'
  242. glossary.Control_Structure.3 = 'link ARx_Instr3.ag/SELECT'
  243. glossary.Control_Structure.4 = 'link ARx_Instr.ag/IF'
  244.  
  245. glossary.Debug =,
  246. 'To search for and eliminate (eventually) problems or'NL ||,
  247. 'bugs in a program. The TRACE instruction aids'NL ||,
  248. 'debugging in ARexx.'
  249. glossary.Debug.Buttons = '_Ok|Node: _Trace|_Cancel'
  250. glossary.Debug.2 = 'link ARx_Instr3.ag/Trace'
  251.  
  252. glossary.Dyadic =,
  253. 'Having two parts. In ARexx, the term refers to'NL ||,
  254. 'operations that have two operands (2 + 2, for'NL ||,
  255. 'instance). Some operations have only one operator'NL ||,
  256. '(-1, for instance) and are referred to here as'NL ||,
  257. 'prefix operations. The more technical name for the'NL ||,
  258. 'opposite of a dyadic operation is unary operation.'
  259. glossary.Dyadic.Buttons = '_Ok|Node: _Operators|_Cancel'
  260. glossary.Dyadic.2 = 'link ARx_Operator.ag/MAIN'
  261.  
  262. glossary.Egregious =,
  263. 'It means "very bad," but use of this word shows that'NL ||,
  264. 'the writer has spent too much time in the company of'NL ||,
  265. 'lawyers. (Which may be the same thing, come to think'NL ||,
  266. 'of it.)'
  267. glossary.Egregious.Buttons = '_OK'
  268.  
  269. glossary.Exponential_Notation = ,
  270. 'A way of writing a number in which one value -- the'NL ||,
  271. 'exponent -- is a power of ten by which the other'NL ||,
  272. 'value will be multiplied before use.'NL || NL ||,
  273. 'In ARexx, an `e'' in a number indicates exponential'NL ||,
  274. 'notation. 7.34e6 is the same number as 7340000.'
  275. glossary.Exponential_Notation.Buttons = '_Ok|Node: _Numbers|_Cancel'
  276. glossary.Exponential_Notation.2 = 'link ARx_Elements2.ag/NUMBER'
  277.  
  278. glossary.Expression =,
  279. 'One or more tokens that can be evaluated to produce a'NL ||,
  280. 'single value. An expression can be anything from a'NL ||,
  281. 'single number to a mixture of numbers, strings,'NL ||,
  282. 'variables, sub-expressions, and function calls.'
  283. glossary.Expression.Buttons = '_Ok|Node: _Expression|_Cancel'
  284. glossary.Expression.2 = 'link ARx_Elements2.ag/Expression'
  285.  
  286. glossary.Function =,
  287. 'A subprogram that returns a single value to the'NL ||,
  288. 'calling environment. A function might be defined in'NL ||,
  289. 'any of several ways. Some are a built-in feature of'NL ||,
  290. 'the language, some are available in external'NL ||,
  291. 'libraries, and some are written by the user either as'NL ||,
  292. 'a subroutine in the executing script or as an'NL ||,
  293. 'external program.'
  294. glossary.Function.Buttons = '_Ok|Node: _Function|_Cancel'
  295. glossary.Function.2 = 'link ARx_Elements3.ag/Function'
  296.  
  297. glossary.GUI =,
  298. 'Graphic User Interface. It''s the acronym used to refer to'NL ||,
  299. 'things like windows, icons, mouse pointers, menus,'NL ||,
  300. 'and requesters that are common on the current'NL ||,
  301. 'generations of computer systems.'
  302. glossary.GUI.Buttons = '_Ok|Node: _GUI function libs|_Cancel'
  303. glossary.GUI.2 = 'link ARx_Elements3.ag/LIBFUNC 13'
  304.  
  305. glossary.Host =,
  306. 'A program that can accept and act on commands issued'NL ||,
  307. 'from an ARexx script. The ADDRESS instruction is used'NL ||,
  308. 'to set up communication with a host.'
  309. glossary.Host.Buttons = '_Ok|Node: _Address|Node: _Host|_Cancel'
  310. glossary.Host.2 = 'link ARx_Instr.ag/Address'
  311. glossary.Host.3 = 'link ARx_Elements3.ag/Host'
  312.  
  313. glossary.Instruction =,
  314. 'The basic program statement in ARexx scripts. An'NL ||,
  315. 'instruction may include several clauses, but always'NL ||,
  316. 'begins with a REXX keyword which must be the first'NL ||,
  317. 'token in the initial clause.'NL || NL ||,
  318. 'Instructions include IF, CALL, DO and similar'NL ||,
  319. 'statements.'
  320. glossary.Instruction.Buttons = '_Ok|Node: _Instruction|Node: _Reference|_Cancel'
  321. glossary.Instruction.2 = 'link ARx_Elements3.ag/Instruction'
  322. glossary.Instruction.3 = 'link ARx_Instr.ag/MAIN'
  323.  
  324. glossary.Interpreter =,
  325. 'A program that translates source code (the program'NL ||,
  326. 'lines you write) into machine instructions. It does'NL ||,
  327. 'that each time the script is run. RexxMast is the'NL ||,
  328. 'ARexx interpreter program.'
  329. glossary.Interpreter.Buttons = '_Ok|Node: _RexxMast|_Cancel'
  330. glossary.Interpreter.2 = 'link ARx_Cmd.ag/REXXMAST'
  331.  
  332. glossary.IO =,
  333. 'Input/Output. The term refers to the various ways of'NL ||,
  334. 'obtaining data and displaying or saving it. The I/O'NL ||,
  335. 'system on the Amiga includes disk drives, windows,'NL ||,
  336. 'and requesters.'
  337. glossary.IO.Buttons = '_Ok|Node: _File I/O|_Cancel'
  338. glossary.IO.2 = 'link ARx_Func3.ag/iofunc'
  339.  
  340. glossary.Iteration =,
  341. 'A program-ese synonym for 'repetition'. To a human'NL ||,
  342. 'the instruction to "Do forever" would be a Sisyphean'NL ||,
  343. 'punishment. To a computer, it is just another task.'NL ||,
  344. 'In ARexx, iteration is performed by a single'NL ||,
  345. 'instruction, DO, which has a wide range of options'NL ||,
  346. 'to give the programmer control over when the'NL ||,
  347. 'iteration stops.'
  348. glossary.Iteration.Buttons = '_Ok|Node: _DO|_Cancel'
  349. glossary.Iteration.2 = 'link ARx_Instr.ag/DO'
  350.  
  351. glossary.Keyword =,
  352. 'The word that identifies an ARexx instruction or the'NL ||,
  353. 'option to an instruction. Keywords and instructions'NL ||,
  354. 'are detailed in the Instruction reference.'
  355. glossary.Keyword.Buttons = '_Ok|Node: _Instruction reference|_Cancel'
  356. glossary.Keyword.2 = 'link ARx_Instr.ag/MAIN'
  357.  
  358. glossary.Logical_Device =,
  359. 'A part of the computer system defined through'NL ||,
  360. 'software. In AmigaDOS, logical devices intervene'NL ||,
  361. 'between the application program (including ARexx) and'NL ||,
  362. 'such hardware devices as disk drives, printers, and'NL ||,
  363. 'the monitor screen.'
  364. glossary.Logical_Device.Buttons = '_Ok|Node: _File I/O|_Cancel'
  365. glossary.Logical_Device.2 = 'link ARx_Func3.ag/iofunc'
  366.  
  367. glossary.Loop =,
  368. 'A section of program code that is repeated (or'NL ||,
  369. 'iterated). Looping in ARexx is controlled by the DO'NL ||,
  370. 'instruction.'
  371. glossary.Loop.Buttons = '_Ok|Node: _DO|_Cancel'
  372. glossary.Loop.2 = 'link ARx_Instr.ag/DO'
  373.  
  374. glossary.Mantra =,
  375. 'In Hinduism, a sacred formula, repeated over and over'NL ||,
  376. 'again, that is believed to posses special power.'NL ||,
  377. '(Looking up this word demonstrates one of two things:'NL ||,
  378. 'either the user wasn''t around for the 60''s or wasn''t'NL ||,
  379. 'paying attention. <insert smiley chars> )'
  380. glossary.Mantra.Buttons = '_Ok'
  381.  
  382. glossary.Nested =,
  383. 'To place one thing within another just as an egg is'NL ||,
  384. 'placed in a bird''s nest. A nested function is one'NL ||,
  385. 'function used as an argument to another function as'NL ||,
  386. 'in RIGHT(TRUNC(Amount, 2), 6). Here the TRUNC()'NL ||,
  387. 'function, which truncates the decimal points on a'NL ||,
  388. 'number, is nested within the RIGHT() function, which'NL ||,
  389. 'right-justifies the resulting number.'
  390. glossary.Nested.Buttons = '_Ok| Node: _Function ref.|Node: _Parentheses|_Cancel'
  391. glossary.Nested.2 = 'link ARx_Func.ag/MAIN'
  392. glossary.Nested.3 = 'link ARx_Operator.ag/PARENPRIORITY'
  393.  
  394. glossary.NIL =,
  395. 'A logical device recognized by AmigaDOS that will'NL ||,
  396. 'throw away input or output directed to it.'
  397. glossary.NIL.Buttons = '_Ok|Node: _Special I/O|_Cancel'
  398. glossary.NIL.2 = 'link ARx_Func3.ag/otherio'
  399.  
  400. glossary.Number =,
  401. 'A string or symbol made up only of digits (0 - 9)'NL ||,
  402. 'with an optional decimal point `.'' that may be'NL ||,
  403. 'placed anywhere within the string -- at the'NL ||,
  404. 'beginning, at the end, or anywhere in between.'NL || NL ||,
  405. 'Another option allows for exponential notation'NL ||,
  406. 'when the letter `e'' is included within the string:'NL ||,
  407. 'The number to the right of the `e'' is interpreted'NL ||,
  408. 'as the exponent to the value on the left.'
  409. glossary.Number.Buttons = '_Ok|Node: _Number|Node: _Symbol|_Cancel'
  410. glossary.Number.2 = 'link ARx_Elements2.ag/Number'
  411. glossary.Number.3 = 'link ARx_Elements.ag/Symbol'
  412.  
  413. glossary.Operation =,
  414. 'An expression that includes an operator and (usually)'NL ||,
  415. 'two terms that are combined in a way specified by the'NL ||,
  416. 'operator to produce a new single value. `3+5'' is an'NL ||,
  417. 'arithmetic operation. 'NL || NL ||,
  418. 'Some operators (like negation) act on a single term'
  419. glossary.Operation.Buttons = '_Ok|Node: o_Perators|Node: _Expressions|_Cancel'
  420. glossary.Operation.2 = 'link arx_Operator.ag/MAIN'
  421. glossary.Operation.3 = 'link ARx_Elements2.ag/Expression'
  422.  
  423. glossary.Operator =,
  424. 'Any of a variety of tokens that represent an'NL ||,
  425. 'operation that is to be performed on the adjoining'NL ||,
  426. 'expression(s). Operators include these characters'NL ||,
  427. '(sometimes used in combination):'NL || NL ||,
  428. '                + - * / % | & = ~ > <'NL || NL ||,
  429. 'A space between two strings is also an operator.'
  430. glossary.Operator.Buttons = '_Ok|Node: o_Perator reference|_Cancel'
  431. glossary.Operator.2 = 'link arx_Operator.ag/MAIN'
  432.  
  433. glossary.Preferences =,
  434. 'A series of programs that are part of the Amiga OS.'NL ||,
  435. 'They allow the user to customize most aspects of the'NL ||,
  436. 'system.'
  437. glossary.Preferences.Buttons = '_Ok'
  438.  
  439. glossary.Prototyping =,
  440. 'The process of developing an initial version of a'NL ||,
  441. 'software application in one language to test the'NL ||,
  442. 'logic of the code and the usefulness of contemplated'NL ||,
  443. 'options.'
  444. glossary.Prototyping.Buttons = '_Ok'
  445.  
  446. glossary.PRT =,
  447. 'A logical device recognized by AmigaDOS that directs'NL ||,
  448. 'output to the printer defined in Preferences. This'NL ||,
  449. 'device can be used as the <filename> with the file'NL ||,
  450. 'I/O functions to print data from an ARexx script.'
  451. glossary.PRT.Buttons = '_Ok|Node: _Special I/O|_Cancel'
  452. glossary.PRT.2 = 'link ARx_Func3.ag/otherio'
  453.  
  454. glossary.Reserved =,
  455. 'A token that serves a specialized purpose in the'NL ||,
  456. 'language and cannot be used for any other purpose.'NL || NL ||,
  457. 'REXX has a limited set of reserved tokens: The single'NL ||,
  458. 'characters representing operators and special 'NL ||,
  459. 'characters are reserved in all situations.'NL ||,
  460. 'Instruction keywords and sub-keywords are reserved'NL ||,
  461. 'only within the limited range of the instruction'NL ||,
  462. 'itself. The variables [x] and [b] -- although they'NL ||,
  463. 'are not technically reserved -- should be avoided'NL ||,
  464. 'because of possible conflicts with hex and binary'NL ||,
  465. 'strings.'
  466. glossary.Reserved.Buttons = '_Ok|Node: _Tokens|_Cancel'
  467. glossary.Reserved.2 = 'link ARx_Elements.ag/Token'
  468.  
  469. glossary.STDERR =,
  470. 'Standard error device. This is the logical name'NL ||,
  471. 'assigned to a device to which ARexx will send error'NL ||,
  472. 'messages and the output of tracing. If the trace'NL ||,
  473. 'console is open, that will become STDERR. The PARSE'NL ||,
  474. 'EXTERNAL instruction retrieves input from this device.'
  475. glossary.STDERR.Buttons = '_Ok|Node: _Standard I/O|_Cancel'
  476. glossary.STDERR.2 = 'link ARx_Func3.ag/stdio'
  477.  
  478. glossary.STDIN =,
  479. 'Standard input device. This is the logical name'NL ||,
  480. 'assigned to a device from which ARexx will retrieve'NL ||,
  481. 'input then the PARSE PULL instruction is used. It'NL ||,
  482. 'is usually the shell from which a program was'NL ||,
  483. 'launched, although a script started from another'NL ||,
  484. 'environment will often have STDIN assigned to NIL:.'
  485. glossary.STDIN.Buttons = '_Ok| Node: _Standard I/O|Node: _Parse|_Cancel'
  486. glossary.STDIN.2 = 'link ARx_Func3.ag/stdio'
  487. glossary.STDIN.3 = 'link ARx_Instr2.ag/Parse'
  488.  
  489. glossary.STDOUT =,
  490. 'Standard output device. This is the logical name of'NL ||,
  491. 'the device to which ARexx will output the expression'NL ||,
  492. 'used in a SAY instruction. It is usually the shell'NL ||,
  493. 'from which a program was launched, although a script'NL ||,
  494. 'started from another environment will often have'NL ||,
  495. 'STDOUT assigned to NIL:.'
  496. glossary.STDOUT.Buttons = '_Ok|Node: _Standard I/O|_Cancel'
  497. glossary.STDOUT.2 = 'link ARx_Func3.ag/stdio'
  498.  
  499. glossary.String =,
  500. 'A character or group of characters that are stored'NL ||,
  501. 'and referenced as a unit. A `literal string'' or'NL ||,
  502. '`string token'' is surrounded by quotation marks --'NL ||,
  503. 'either single { '' } or double { " }, but the word'NL ||,
  504. '`string'' may also refer to the value of a variable,'NL ||,
  505. 'or the result of an expression.'|| NL || NL ||,
  506. 'A string can comprise up to 65535 characters.'
  507. glossary.String.Buttons = '_Ok|Node: _String|_Cancel'
  508. glossary.String.2 = 'link ARx_Elements2.ag/StringExpr'
  509.  
  510. glossary.Subroutine =,
  511. 'A section of code separated from the main body of a'NL ||,
  512. 'program. In ARexx, subroutines are identified by'NL ||,
  513. 'labels and usually serve as internal functions.'
  514. glossary.Subroutine.Buttons = '_Ok| Node: _Label|Node: _Internal function|_Cancel'
  515. glossary.Subroutine.2 = 'link ARx_Elements3.ag/Label'
  516. glossary.Subroutine.3 = 'link ARx_Elements3.ag/ProgFunc'
  517.  
  518. glossary.Symbol =,
  519. 'A token made up of any of the following alphabetic'NL ||,
  520. 'characters, digits, or special characters:'NL || NL ||,
  521. '    A to Z  a to z  0 to 9  . ! $ _ @ #'NL || NL ||,
  522. 'The following are symbols: Names for variables or'NL ||,
  523. 'functions, numbers, and instruction keywords. A'NL ||,
  524. 'symbol may be entered in a mixture of upper- and'NL ||,
  525. 'lowercase alphabetic characters, but all symbols are'NL ||,
  526. 'translated to uppercase during evaluation.'NL || NL,
  527. 'Symbols can have up to 65535 characters.'
  528. glossary.Symbol.Buttons = '_Ok|Node: _Symbol|_Cancel'
  529. glossary.Symbol.2 = 'link ARx_Elements.ag/Symbol'
  530.  
  531. glossary.Token =,
  532. 'The simplest (smallest) item in the language, from'NL ||,
  533. 'which more complex elements are formed. A token might'NL ||,
  534. 'be a single character like `+'' or `/'', a number, or a'NL ||,
  535. 'word like `FOO'' or `CALL''.'
  536. glossary.Token.Buttons = '_Ok|Node: _Token|_Cancel'
  537. glossary.Token.2 = 'link ARx_Elements.ag/Token'
  538.  
  539. glossary.TRL2 =,
  540. 'A common abbreviation for the book that defines the'NL ||,
  541. 'standard for the language: The REXX Programming'NL ||,
  542. 'Language: A Practical Approach to Programming, Second'NL ||,
  543. 'Edition, by M.F. Cowlishaw.'
  544. glossary.TRL2.Buttons = '_Ok|Node: _References|_Cancel'
  545. glossary.TRL2.2 = 'link ARx_Intro.ag/REF'
  546.  
  547. glossary.Truncate =,
  548. 'To shorten by chopping off the trailing end. If a'NL ||,
  549. 'decimal number like 1.9 is truncated to one digit, it'NL ||,
  550. 'would become 1, rather than the number 2 that would'NL ||,
  551. 'result from rounding the number.'
  552. glossary.Truncate.Buttons = '_Ok'
  553.  
  554. glossary.Variable =,
  555. 'A symbol that becomes a placeholder for another value'NL ||,
  556. 'and can, in most cases, be used in place of the'NL ||,
  557. 'literal value it represents. A variable name follows'NL ||,
  558. 'general symbol-naming rules.'
  559. glossary.Variable.Buttons = '_Ok|Node: _Variable |Node: _Symbol|_Cancel'
  560. glossary.Variable.2 = 'link ARx_Elements2.ag/Variable'
  561. glossary.Variable.3 = 'link ARx_Elements.ag/symbol'
  562.  
  563. return 0